package com.ruoyi.material.service;

import java.util.List;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.material.domain.MateriaType;

/**
 * 材料类型Service接口
 * 
 * @author renyuxin
 * @date 2024-05-29
 */
public interface IMateriaTypeService 
{
    /**
     * 查询材料类型
     * 
     * @param materiatypeId 材料类型主键
     * @return 材料类型
     */
    public MateriaType selectMateriaTypeByMateriatypeId(Long materiatypeId);

    /**
     * 查询材料类型列表
     * 
     * @param materiaType 材料类型
     * @return 材料类型集合
     */
    public List<MateriaType> selectMateriaTypeList(MateriaType materiaType);

    /**
     * 新增材料类型
     * 
     * @param materiaType 材料类型
     * @return 结果
     */
    public int insertMateriaType(MateriaType materiaType);

    /**
     * 修改材料类型
     * 
     * @param materiaType 材料类型
     * @return 结果
     */
    public int updateMateriaType(MateriaType materiaType);

    /**
     * 批量删除材料类型
     * 
     * @param materiatypeIds 需要删除的材料类型主键集合
     * @return 结果
     */
    public AjaxResult deleteMateriaTypeByMateriatypeIds(Long[] materiatypeIds);

    /**
     * 删除材料类型信息
     * 
     * @param materiatypeId 材料类型主键
     * @return 结果
     */
    public int deleteMateriaTypeByMateriatypeId(Long materiatypeId);

    MateriaType getTree();

    /**
     * 有子节点则不能删
     *
     */
    boolean hasChildren(Long materiatypeId);

    /**
     * 唯一性验证
     *
     */
    boolean checkNameUnique(MateriaType materiaType);
}
